<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    function callbackFun(a, b, callback) {
      if (a + b > 5) {
        setTimeout(function () {
          callback(a + b)
        }, 1000)
        setTimeout(function () {
          callback(a + b + 1)
        }, 5000)
      } else {
        callback(new Error('总和太小'))
      }
    }
    callbackFun(2, 4, function (c) {
      console.log(c);
    })
    //callback只是函数形参，可用于同步或异步当中，在其中调用函数进行操作，此外在异步中，可以使得每个异步操作结束之后会立刻
    //调用其回调函数，不会因为js单线程导致程序阻塞。也不会因为异步导致最后再调用回调函数

    /*
    new Error将内容以报错的形式抛出 */
  </script>
</body>

</html>